package com.itany.corejava.code07_面向对象;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年10月31日 16:48
 */
public class Test05_static关键字 {
    public static void main(String[] args) {
        //静态属性:类名.属性名
        SomeClass2.name="嘻嘻";
        //静态方法:；类名.方法名()
        SomeClass2.print();
        SomeClass2 sc=new SomeClass2();
        //静态方法:；类名.方法名()(推荐方式) 或者对象名.方法名(不推荐)
        // sc.print();
        sc.show();
       /* 实例方法
                可以访问实例变量与静态变量
                可以访问实例方法与静态方法
                即: 实例方法都可以访问
                只能通过对象来调用
        静态方法
                只能访问静态变量,无法访问实例变量
                只能访问静态方法, 无法访问实例方法
                即: 静态方法只能访问静态变量与静态方法
                可以通过对象调用, 也可以通过类调用, 建议通过类来调用

            */


    }
}

class SomeClass2{

    //静态变量，类变量
    static String name;

    //实例变量
    int age;

    //实例方法
    public void show(){

        //实例方法可以访问实例变量和静态变量
        System.out.println("姓名:"+name+",年龄:"+age);
        show2();
        print2();
    }
    public void show2(){
        System.out.println("这是show方法，这是一个实例方法");
    }
    //静态方法
    public static void print(){

        //静态方法只能访问静态变量，无法访问实例变量
        // System.out.print("我是静态方法:姓名:"+name+",年龄:"+age);//报错
        System.out.print("我是静态方法:姓名:"+name+"\n");
        // show2();//报错，静态方法中无法访问实例方法
        print2();

    }
    public static void print2(){
        System.out.println("这是一个print2，这是一个静态方法");
    }
}